<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- /fasttmp/mkdist-qt-4.3.5-1211793125/qtopia-core-opensource-src-4.3.5/src/gui/itemviews/qproxymodel.cpp -->
<head>
  <title>Qt 4.3: QProxyModel Class Reference</title>
  <link href="classic.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" width="32"><a href="http://www.trolltech.com/products/qt"><img src="images/qt-logo.png" align="left" width="32" height="32" border="0" /></a></td>
<td width="1">&nbsp;&nbsp;</td><td class="postheader" valign="center"><a href="index.html"><font color="#004faf">Home</font></a>&nbsp;&middot; <a href="classes.html"><font color="#004faf">All&nbsp;Classes</font></a>&nbsp;&middot; <a href="mainclasses.html"><font color="#004faf">Main&nbsp;Classes</font></a>&nbsp;&middot; <a href="groups.html"><font color="#004faf">Grouped&nbsp;Classes</font></a>&nbsp;&middot; <a href="modules.html"><font color="#004faf">Modules</font></a>&nbsp;&middot; <a href="functions.html"><font color="#004faf">Functions</font></a></td>
<td align="right" valign="top" width="230"><a href="http://www.trolltech.com"><img src="images/trolltech-logo.png" align="right" width="203" height="32" border="0" /></a></td></tr></table><h1 align="center">QProxyModel Class Reference<br /><sup><sup>[<a href="qtgui.html">QtGui</a> module]</sup></sup></h1>
<p>The QProxyModel class provides support for processing data passed between another model and a view. <a href="#details">More...</a></p>
<pre> #include &lt;QProxyModel&gt;</pre><p><b>This class is obsolete.</b> It is provided to keep old source code working. We strongly advise against using it in new code.</p>
<p>Inherits <a href="qabstractitemmodel.html">QAbstractItemModel</a>.</p>
<ul>
<li><a href="qproxymodel-members.html">List of all members, including inherited members</a></li>
</ul>
<a name="public-functions"></a>
<h3>Public Functions</h3>
<ul>
<li><div class="fn"/><b><a href="qproxymodel.html#QProxyModel">QProxyModel</a></b> ( QObject * <i>parent</i> = 0 )</li>
<li><div class="fn"/><b><a href="qproxymodel.html#dtor.QProxyModel">~QProxyModel</a></b> ()</li>
<li><div class="fn"/>virtual int <b><a href="qproxymodel.html#columnCount">columnCount</a></b> ( const QModelIndex &amp; <i>parent</i> ) const</li>
<li><div class="fn"/>virtual QVariant <b><a href="qproxymodel.html#data">data</a></b> ( const QModelIndex &amp; <i>index</i>, int <i>role</i> ) const</li>
<li><div class="fn"/>virtual bool <b><a href="qproxymodel.html#dropMimeData">dropMimeData</a></b> ( const QMimeData * <i>data</i>, Qt::DropAction <i>action</i>, int <i>row</i>, int <i>column</i>, const QModelIndex &amp; <i>parent</i> )</li>
<li><div class="fn"/>virtual void <b><a href="qproxymodel.html#fetchMore">fetchMore</a></b> ( const QModelIndex &amp; <i>parent</i> )</li>
<li><div class="fn"/>virtual Qt::ItemFlags <b><a href="qproxymodel.html#flags">flags</a></b> ( const QModelIndex &amp; <i>index</i> ) const</li>
<li><div class="fn"/>virtual bool <b><a href="qproxymodel.html#hasChildren">hasChildren</a></b> ( const QModelIndex &amp; <i>parent</i> ) const</li>
<li><div class="fn"/>virtual QVariant <b><a href="qproxymodel.html#headerData">headerData</a></b> ( int <i>section</i>, Qt::Orientation <i>orientation</i>, int <i>role</i> ) const</li>
<li><div class="fn"/>virtual QModelIndex <b><a href="qproxymodel.html#index">index</a></b> ( int <i>row</i>, int <i>column</i>, const QModelIndex &amp; <i>parent</i> ) const</li>
<li><div class="fn"/>virtual bool <b><a href="qproxymodel.html#insertColumns">insertColumns</a></b> ( int <i>column</i>, int <i>count</i>, const QModelIndex &amp; <i>parent</i> )</li>
<li><div class="fn"/>virtual bool <b><a href="qproxymodel.html#insertRows">insertRows</a></b> ( int <i>row</i>, int <i>count</i>, const QModelIndex &amp; <i>parent</i> )</li>
<li><div class="fn"/>virtual QModelIndexList <b><a href="qproxymodel.html#match">match</a></b> ( const QModelIndex &amp; <i>start</i>, int <i>role</i>, const QVariant &amp; <i>value</i>, int <i>hits</i>, Qt::MatchFlags <i>flags</i> ) const</li>
<li><div class="fn"/>virtual QMimeData * <b><a href="qproxymodel.html#mimeData">mimeData</a></b> ( const QModelIndexList &amp; <i>indexes</i> ) const</li>
<li><div class="fn"/>virtual QStringList <b><a href="qproxymodel.html#mimeTypes">mimeTypes</a></b> () const</li>
<li><div class="fn"/>QAbstractItemModel * <b><a href="qproxymodel.html#model">model</a></b> () const</li>
<li><div class="fn"/>virtual QModelIndex <b><a href="qproxymodel.html#parent">parent</a></b> ( const QModelIndex &amp; <i>child</i> ) const</li>
<li><div class="fn"/>virtual void <b><a href="qproxymodel.html#revert">revert</a></b> ()</li>
<li><div class="fn"/>virtual int <b><a href="qproxymodel.html#rowCount">rowCount</a></b> ( const QModelIndex &amp; <i>parent</i> ) const</li>
<li><div class="fn"/>virtual bool <b><a href="qproxymodel.html#setData">setData</a></b> ( const QModelIndex &amp; <i>index</i>, const QVariant &amp; <i>value</i>, int <i>role</i> )</li>
<li><div class="fn"/>virtual bool <b><a href="qproxymodel.html#setHeaderData">setHeaderData</a></b> ( int <i>section</i>, Qt::Orientation <i>orientation</i>, const QVariant &amp; <i>value</i>, int <i>role</i> )</li>
<li><div class="fn"/>virtual void <b><a href="qproxymodel.html#setModel">setModel</a></b> ( QAbstractItemModel * <i>model</i> )</li>
<li><div class="fn"/>virtual void <b><a href="qproxymodel.html#sort">sort</a></b> ( int <i>column</i>, Qt::SortOrder <i>order</i> )</li>
<li><div class="fn"/>virtual QSize <b><a href="qproxymodel.html#span">span</a></b> ( const QModelIndex &amp; <i>index</i> ) const</li>
<li><div class="fn"/>virtual bool <b><a href="qproxymodel.html#submit">submit</a></b> ()</li>
<li><div class="fn"/>virtual Qt::DropActions <b><a href="qproxymodel.html#supportedDropActions">supportedDropActions</a></b> () const</li>
</ul>
<ul>
<li><div class="fn"/>34 public functions inherited from <a href="qabstractitemmodel.html#public-functions">QAbstractItemModel</a></li>
<li><div class="fn"/>29 public functions inherited from <a href="qobject.html#public-functions">QObject</a></li>
</ul>
<h3>Additional Inherited Members</h3>
<ul>
<li><div class="fn"/>1 property inherited from <a href="qobject.html#properties">QObject</a></li>
<li><div class="fn"/>2 public slots inherited from <a href="qabstractitemmodel.html#public-slots">QAbstractItemModel</a></li>
<li><div class="fn"/>1 public slot inherited from <a href="qobject.html#public-slots">QObject</a></li>
<li><div class="fn"/>14 signals inherited from <a href="qabstractitemmodel.html#signals">QAbstractItemModel</a></li>
<li><div class="fn"/>1 signal inherited from <a href="qobject.html#signals">QObject</a></li>
<li><div class="fn"/>5 static public members inherited from <a href="qobject.html#static-public-members">QObject</a></li>
<li><div class="fn"/>14 protected functions inherited from <a href="qabstractitemmodel.html#protected-functions">QAbstractItemModel</a></li>
<li><div class="fn"/>7 protected functions inherited from <a href="qobject.html#protected-functions">QObject</a></li>
</ul>
<a name="details"></a>
<hr />
<h2>Detailed Description</h2>
<p>The QProxyModel class provides support for processing data passed between another model and a view.</p>
<p>If you want to do filtering and sorting, see <a href="qsortfilterproxymodel.html">QSortFilterProxyModel</a>.</p>
<p>Proxy models provide a standard model interface that can be used to manipulate the data retrieved through an underlying model. They can be used to perform operations such as sorting and filtering on the data obtained without changing the contents of the model.</p>
<p>Just as with subclasses of <a href="qabstractitemview.html">QAbstractItemView</a>, QProxyModel provides the <a href="qproxymodel.html#setModel">setModel</a>() function that is used to specify the model to be acted on by the proxy. Views can be connected to either the underlying model or the proxy model with <a href="qabstractitemview.html#setModel">QAbstractItemView::setModel</a>().</p>
<p>Since views rely on the information provided in model indexes to identify items of data from models, and to position these items in some visual representation, proxy models must create their own model indexes instead of supplying model indexes from their underlying models.</p>
<p>See also <a href="model-view-programming.html">Model/View Programming</a> and <a href="qabstractitemmodel.html">QAbstractItemModel</a>.</p>
<hr />
<h2>Member Function Documentation</h2>
<h3 class="fn"><a name="QProxyModel"></a>QProxyModel::QProxyModel ( <a href="qobject.html">QObject</a> * <i>parent</i> = 0 )</h3>
<p>Constructs a proxy model with the given <i>parent</i>.</p>
<h3 class="fn"><a name="dtor.QProxyModel"></a>QProxyModel::~QProxyModel ()</h3>
<p>Destroys the proxy model.</p>
<h3 class="fn"><a name="columnCount"></a>int QProxyModel::columnCount ( const <a href="qmodelindex.html">QModelIndex</a> &amp; <i>parent</i> ) const&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Returns the number of columns for the given <i>parent</i>.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#columnCount">QAbstractItemModel</a>.</p>
<p>See also <a href="qabstractitemmodel.html#columnCount">QAbstractItemModel::columnCount</a>().</p>
<h3 class="fn"><a name="data"></a><a href="qvariant.html">QVariant</a> QProxyModel::data ( const <a href="qmodelindex.html">QModelIndex</a> &amp; <i>index</i>, int <i>role</i> ) const&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Returns the data stored in the item with the given <i>index</i> under the specified <i>role</i>.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#data">QAbstractItemModel</a>.</p>
<p>See also <a href="qproxymodel.html#setData">setData</a>().</p>
<h3 class="fn"><a name="dropMimeData"></a>bool QProxyModel::dropMimeData ( const <a href="qmimedata.html">QMimeData</a> * <i>data</i>, <a href="qt.html#DropAction-enum">Qt::DropAction</a> <i>action</i>, int <i>row</i>, int <i>column</i>, const <a href="qmodelindex.html">QModelIndex</a> &amp; <i>parent</i> )&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Returns true if the model accepts the <i>data</i> dropped onto an attached view for the specified <i>action</i>; otherwise returns false.</p>
<p>The <i>parent</i>, <i>row</i>, and <i>column</i> details can be used to control which MIME types are acceptable to different parts of a model when received via the drag and drop system.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#dropMimeData">QAbstractItemModel</a>.</p>
<h3 class="fn"><a name="fetchMore"></a>void QProxyModel::fetchMore ( const <a href="qmodelindex.html">QModelIndex</a> &amp; <i>parent</i> )&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Fetches more child items of the given <i>parent</i>. This function is used by views to tell the model that they can display more data than the model has provided.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#fetchMore">QAbstractItemModel</a>.</p>
<p>See also <a href="qabstractitemmodel.html#fetchMore">QAbstractItemModel::fetchMore</a>().</p>
<h3 class="fn"><a name="flags"></a><a href="qt.html#ItemFlag-enum">Qt::ItemFlags</a> QProxyModel::flags ( const <a href="qmodelindex.html">QModelIndex</a> &amp; <i>index</i> ) const&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Returns the item flags for the given <i>index</i>.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#flags">QAbstractItemModel</a>.</p>
<h3 class="fn"><a name="hasChildren"></a>bool QProxyModel::hasChildren ( const <a href="qmodelindex.html">QModelIndex</a> &amp; <i>parent</i> ) const&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Returns true if the item corresponding to the <i>parent</i> index has child items; otherwise returns false.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#hasChildren">QAbstractItemModel</a>.</p>
<p>See also <a href="qabstractitemmodel.html#hasChildren">QAbstractItemModel::hasChildren</a>().</p>
<h3 class="fn"><a name="headerData"></a><a href="qvariant.html">QVariant</a> QProxyModel::headerData ( int <i>section</i>, <a href="qt.html#Orientation-enum">Qt::Orientation</a> <i>orientation</i>, int <i>role</i> ) const&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Returns the data stored in the <i>section</i> of the header with specified <i>orientation</i> under the given <i>role</i>.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#headerData">QAbstractItemModel</a>.</p>
<p>See also <a href="qproxymodel.html#setHeaderData">setHeaderData</a>().</p>
<h3 class="fn"><a name="index"></a><a href="qmodelindex.html">QModelIndex</a> QProxyModel::index ( int <i>row</i>, int <i>column</i>, const <a href="qmodelindex.html">QModelIndex</a> &amp; <i>parent</i> ) const&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Returns the model index with the given <i>row</i>, <i>column</i>, and <i>parent</i>.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#index">QAbstractItemModel</a>.</p>
<p>See also <a href="qabstractitemmodel.html#index">QAbstractItemModel::index</a>().</p>
<h3 class="fn"><a name="insertColumns"></a>bool QProxyModel::insertColumns ( int <i>column</i>, int <i>count</i>, const <a href="qmodelindex.html">QModelIndex</a> &amp; <i>parent</i> )&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Inserts <i>count</i> columns into the model, creating new items as children of the given <i>parent</i>. The new columns are inserted before the <i>column</i> specified. If the <i>parent</i> item has no children, a single row is created to contain the required number of columns.</p>
<p>Returns true if the columns were successfully inserted; otherwise returns false.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#insertColumns">QAbstractItemModel</a>.</p>
<p>See also <a href="qabstractitemmodel.html#insertColumns">QAbstractItemModel::insertColumns</a>().</p>
<h3 class="fn"><a name="insertRows"></a>bool QProxyModel::insertRows ( int <i>row</i>, int <i>count</i>, const <a href="qmodelindex.html">QModelIndex</a> &amp; <i>parent</i> )&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Inserts <i>count</i> rows into the model, creating new items as children of the given <i>parent</i>. The new rows are inserted before the <i>row</i> specified. If the <i>parent</i> item has no children, a single column is created to contain the required number of rows.</p>
<p>Returns true if the rows were successfully inserted; otherwise returns false.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#insertRows">QAbstractItemModel</a>.</p>
<p>See also <a href="qabstractitemmodel.html#insertRows">QAbstractItemModel::insertRows</a>().</p>
<h3 class="fn"><a name="match"></a><a href="qmodelindex.html#QModelIndexList-typedef">QModelIndexList</a> QProxyModel::match ( const <a href="qmodelindex.html">QModelIndex</a> &amp; <i>start</i>, int <i>role</i>, const <a href="qvariant.html">QVariant</a> &amp; <i>value</i>, int <i>hits</i>, <a href="qt.html#MatchFlag-enum">Qt::MatchFlags</a> <i>flags</i> ) const&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Returns a list of model indexes that each contain the given <i>value</i> for the <i>role</i> specified. The search begins at the <i>start</i> index and is performed according to the specified <i>flags</i>. The search continues until the number of matching data items equals <i>hits</i>, the last row is reached, or the search reaches <i>start</i> again, depending on whether <tt>MatchWrap</tt> is specified in <i>flags</i>.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#match">QAbstractItemModel</a>.</p>
<p>See also <a href="qabstractitemmodel.html#match">QAbstractItemModel::match</a>().</p>
<h3 class="fn"><a name="mimeData"></a><a href="qmimedata.html">QMimeData</a> * QProxyModel::mimeData ( const <a href="qmodelindex.html#QModelIndexList-typedef">QModelIndexList</a> &amp; <i>indexes</i> ) const&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Returns MIME data for the specified <i>indexes</i> in the model.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#mimeData">QAbstractItemModel</a>.</p>
<h3 class="fn"><a name="mimeTypes"></a><a href="qstringlist.html">QStringList</a> QProxyModel::mimeTypes () const&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Returns a list of MIME types that are supported by the model.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#mimeTypes">QAbstractItemModel</a>.</p>
<h3 class="fn"><a name="model"></a><a href="qabstractitemmodel.html">QAbstractItemModel</a> * QProxyModel::model () const</h3>
<p>Returns the model that contains the data that is available through the proxy model.</p>
<p>See also <a href="qproxymodel.html#setModel">setModel</a>().</p>
<h3 class="fn"><a name="parent"></a><a href="qmodelindex.html">QModelIndex</a> QProxyModel::parent ( const <a href="qmodelindex.html">QModelIndex</a> &amp; <i>child</i> ) const&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Returns the model index that corresponds to the parent of the given <i>child</i> index.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#parent">QAbstractItemModel</a>.</p>
<h3 class="fn"><a name="revert"></a>void QProxyModel::revert ()&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Reimplemented from <a href="qabstractitemmodel.html#revert">QAbstractItemModel</a>.</p>
<h3 class="fn"><a name="rowCount"></a>int QProxyModel::rowCount ( const <a href="qmodelindex.html">QModelIndex</a> &amp; <i>parent</i> ) const&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Returns the number of rows for the given <i>parent</i>.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#rowCount">QAbstractItemModel</a>.</p>
<p>See also <a href="qabstractitemmodel.html#rowCount">QAbstractItemModel::rowCount</a>().</p>
<h3 class="fn"><a name="setData"></a>bool QProxyModel::setData ( const <a href="qmodelindex.html">QModelIndex</a> &amp; <i>index</i>, const <a href="qvariant.html">QVariant</a> &amp; <i>value</i>, int <i>role</i> )&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Sets the <i>role</i> data for the item at <i>index</i> to <i>value</i>. Returns true if successful; otherwise returns false.</p>
<p>The base class implementation returns false. This function and <a href="qproxymodel.html#data">data</a>() must be reimplemented for editable models.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#setData">QAbstractItemModel</a>.</p>
<p>See also <a href="qproxymodel.html#data">data</a>(), <a href="qabstractitemmodel.html#itemData">itemData</a>(), and <a href="qabstractitemmodel.html#setData">QAbstractItemModel::setData</a>().</p>
<h3 class="fn"><a name="setHeaderData"></a>bool QProxyModel::setHeaderData ( int <i>section</i>, <a href="qt.html#Orientation-enum">Qt::Orientation</a> <i>orientation</i>, const <a href="qvariant.html">QVariant</a> &amp; <i>value</i>, int <i>role</i> )&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Sets the <i>role</i> data in the <i>section</i> of the header with the specified <i>orientation</i> to the <i>value</i> given.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#setHeaderData">QAbstractItemModel</a>.</p>
<p>See also <a href="qproxymodel.html#headerData">headerData</a>() and <a href="qabstractitemmodel.html#setHeaderData">QAbstractItemModel::setHeaderData</a>().</p>
<h3 class="fn"><a name="setModel"></a>void QProxyModel::setModel ( <a href="qabstractitemmodel.html">QAbstractItemModel</a> * <i>model</i> )&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Sets the given <i>model</i> to be processed by the proxy model.</p>
<p>See also <a href="qproxymodel.html#model">model</a>().</p>
<h3 class="fn"><a name="sort"></a>void QProxyModel::sort ( int <i>column</i>, <a href="qt.html#SortOrder-enum">Qt::SortOrder</a> <i>order</i> )&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Sorts the child items in the specified <i>column</i> according to the sort order defined by <i>order</i>.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#sort">QAbstractItemModel</a>.</p>
<p>See also <a href="qabstractitemmodel.html#sort">QAbstractItemModel::sort</a>().</p>
<h3 class="fn"><a name="span"></a><a href="qsize.html">QSize</a> QProxyModel::span ( const <a href="qmodelindex.html">QModelIndex</a> &amp; <i>index</i> ) const&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Returns the size of the item that corresponds to the specified <i>index</i>.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#span">QAbstractItemModel</a>.</p>
<h3 class="fn"><a name="submit"></a>bool QProxyModel::submit ()&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Reimplemented from <a href="qabstractitemmodel.html#submit">QAbstractItemModel</a>.</p>
<h3 class="fn"><a name="supportedDropActions"></a><a href="qt.html#DropAction-enum">Qt::DropActions</a> QProxyModel::supportedDropActions () const&nbsp;&nbsp;<tt> [virtual]</tt></h3>
<p>Returns the drop actions that are supported by the model; this is a combination of the individual actions defined in <a href="qt.html#DropAction-enum">Qt::DropActions</a>.</p>
<p>The selection of drop actions provided by the model will influence the behavior of the component that started the drag and drop operation.</p>
<p>Reimplemented from <a href="qabstractitemmodel.html#supportedDropActions">QAbstractItemModel</a>.</p>
<p>See also <a href="dnd.html">Drag and Drop</a>.</p>
<p /><address><hr /><div align="center">
<table width="100%" cellspacing="0" border="0"><tr class="address">
<td width="30%">Copyright &copy; 2008 <a href="trolltech.html">Trolltech</a></td>
<td width="40%" align="center"><a href="trademarks.html">Trademarks</a></td>
<td width="30%" align="right"><div align="right">Qt 4.3.5</div></td>
</tr></table></div></address></body>
</html>
